#include <stdio.h>
void menu()
{
    printf("###### 1.add ########\n");
    printf("###### 2.sub ########\n");
    printf("###### 3.mul ########\n");
    printf("###### 4.del ########\n");
    printf("###### 0.exit ########\n");
}
void ADD(int x,int y)
{
    printf("%d\n",x+y);
}

void SUB(int x,int y)
{
    printf("%d\n",x-y);
}

void MUL(int x,int y)
{
    printf("%d\n",x*y);
}

void DEL(int x,int y)
{
    printf("%d\n",x/y);
}

// int main()
// {
//     //制作一个加减乘初计算器；
//     int input=0;
//     int x=0;
//     int y=0;

//     do 
//     {
//         menu();
//         printf("请选择要进行的计算:\n");
//         scanf("%d",&input);
//         void (*p_arr[5])(int,int)={0,&ADD,&SUB,&MUL,&DEL};
//         //函数指针数组 加个0 刚好下标对应相应计算
//         switch(input)
//         {
//             case 1:
//             printf("请输入两个数字:\n");
//             scanf("%d %d",&x,&y);
//             p_arr[1](x,y);
//             break;
//             case 2:
//             printf("请输入两个数字:\n");
//             scanf("%d %d",&x,&y);
//             SUB(x,y);
//             break;
//             case 3:
//             printf("请输入两个数字:\n");
//             scanf("%d %d",&x,&y);
//             MUL(x,y);
//             break;
//             case 4:
//             printf("请输入两个数字:\n");
//             scanf("%d %d",&x,&y);
//             DEL(x,y);
//             break;
//             case 0:
//             printf("退出计算器\n");
//             break;
//             default:
//             printf("输入错误请重新输入\n");
//             break;
//         }
//     }while (input);
//     void (*p) (int ,int )=ADD;//函数指针 指向函数的指针
//     // printf("%p\n",&ADD);
//     // printf("%p\n",p);
//     // printf("%p\n",ADD);//&ADD & ADD 含义是一样的，都是函数的地址
//     return 0;
// }
//

//版本2
int main()
{
    //制作一个加减乘初计算器；
    int input=0;
    int x=0;
    int y=0;
    do 
    {
        menu();
        printf("请选择要进行的计算:\n");
        scanf("%d",&input);
        void (*p_arr[5])(int,int)={0,&ADD,&SUB,&MUL,&DEL};
        //函数指针数组 加个0 刚好下标对应相应计算
        if(input>0 &&  input <5)
        {
            printf("请输入两个数\n");
            scanf("%d %d",&x,&y);
            p_arr[input](x,y);
        }
        
        else if(input==0)
        {
            printf("退出计算器\n");
        }
        else
        printf("输入错误\n");
    }while (input);
    return 0;
}